// const baseUrl = 'http://101.201.221.54/api'
import {
	baseUrl
} from './base.js'
const request = (params, method) => {
	let baseData = {
		loading: true,
		showText: '加载中...',
		url: '',
		loading: true,
		header: {
			'content-type': 'application/json',
			// "content-type": "application/x-www-form-urlencoded",
			// "Authorization": 'Bearer' + uni.getStorageSync('token')
			"token": uni.getStorageSync('wanlshop:user').token || '',
		},
		// 固定参数
		data: {
			// uniacid: 51, // 平台固定id
			// suid: uni.getStorageSync('suid') || ''
		}
	}
	params = {
		...baseData,
		...params
	}
	params.data = {
		...baseData.data,
		...params?.data
	}
	let {
		url,
		data,
		loading,
		header,
		showText
	} = params
	if (params.loading) {
		uni.showLoading({
			title: showText
		})
	}
	url = url.includes('http') ? url : baseUrl + url
	return new Promise((reslove, reject) => {
		uni.request({
			url,
			data,
			method,
			header,
			success: (res) => {
				uni.hideLoading()
				uni.stopPullDownRefresh()
				reslove(res.data)
				// console.log('%c请求结果:', 'color:green;', res.data, url, data);
				// if (res.statusCode == 200) {
				// 	if (res.data.code != 0) {
				// 		uni.showToast({
				// 			title: res.data.msg,
				// 			icon: 'none',
				// 			mask: true
				// 		})
				// 		reject(res.data)
				// 	} else {
				// 		reslove(res.data)
				// 	}
				// } else {
				// 	uni.showToast({
				// 		title: res.data.msg,
				// 		icon: 'none',
				// 		mask: true
				// 	})
				// 	reject(res.data)
				// }
			},
			fail: (err) => {
				uni.hideLoading()
				uni.stopPullDownRefresh()
				console.log('%c请求失败:', 'color:red;', err, url);
				uni.showToast({
					title: err.errMsg,
					icon: 'none',
					mask: true
				})
				reject(err)
			}
		})
	})
}

const http = {
	// http对象中的方法
	get: async params => {
		return await request(params, 'GET')
	},
	post: async params => {
		return await request(params, 'POST')
	},
	put: async params => {
		return await request(params, 'PUT')
	},
	delete: async params => {
		return await request(params, 'DELETE')
	}
}

export default http;